package com.yuelao.yuelao_backend.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 私聊消息表
 */
@Data
@TableName("messages")
public class Message implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 会话ID
     */
    private Long conversationId;

    /**
     * 发送者ID
     */
    private Long senderId;

    /**
     * 接收者ID
     */
    private Long receiverId;

    /**
     * 消息类型: text, image, voice, video, file, location, system
     */
    private String messageType;

    /**
     * 消息内容
     */
    private String content;

    /**
     * 媒体文件URL
     */
    private String mediaUrl;

    /**
     * 文件名
     */
    private String fileName;

    /**
     * 文件大小（字节）
     */
    private Long fileSize;

    /**
     * 缩略图URL（用于视频消息）
     */
    private String thumbnailUrl;

    /**
     * 语音时长（秒）
     */
    private Integer duration;

    /**
     * 是否已读
     */
    private Boolean isRead;

    /**
     * 阅读时间
     */
    private LocalDateTime readAt;

    /**
     * 是否撤回
     */
    private Boolean isRevoked;

    /**
     * 撤回时间
     */
    private LocalDateTime revokedAt;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;
}
